数据恢复
在你使用 Git
的时候,你可能会意外丢失一次提交。 通常这是因为你强制删除了正在工作的分支,但是最后却发现你还需要这个分支, 亦或者硬重置了一个分支,放弃了你想要的提交。
git reset --hard <SHA-1>
硬重置 master
指向 sha-1
的节点
我们可以通过 git reflog
来查找丢失的节点:
当你正在工作时,
Git
会默默地记录每一次你改变HEAD
时它的值。 每一次你提交或改变分支,引用日志都会被更新
接着,我们可以创建一个新分支指向丢失的提交来恢复它:
git branch recover-branch <SHA-1>
假设你丢失的提交因为某些原因不在引用日志中,可以通过 git fsck
来找回:
使用 git fsck
实用工具,将会检查数据库的完整性。 如果使用一个 --full
选项运行它,它会向你显示出所有没有被其他对象指向的对象